﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Model;
using DL;
using BL;

namespace DokterAfspraken.PatientPages
{
    public partial class PatientAgenda : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Cal_SelecteerAndereDatum.SelectedDate = DateTime.Now;
            }

            if (Cal_SelecteerAndereDatum.SelectedDate != DateTime.Now)
            {
                DateTime Date = Cal_SelecteerAndereDatum.SelectedDate;
                SelectDate(Date);
            }
            else
            {
                SelectDate(Cal_SelecteerAndereDatum.SelectedDate);
            }
        }

        protected void Cal_SelecteerAndereDatum_SelectionChanged(object sender, EventArgs e)
        {
            DateTime Date = Cal_SelecteerAndereDatum.SelectedDate;
            SelectDate(Date);
        }

        public void SelectDate(DateTime Date)
        {
            Placeholder_Agenda.Controls.Clear();
            DateTime GekozenDatum = Cal_SelecteerAndereDatum.SelectedDate;
            DataModelManager GetDocInfo = new DataModelManager();

            // hier wordt via een querystring de artsID en praktijkID opgehaald

            
                int ID = int.Parse(Request.QueryString["ID"]);
                int PraktijkID = int.Parse(Request.QueryString["PraktijkID"]);
            
            
            DataModelManager Praktijk = new DataModelManager();

            //hier wil ik een lijst van dokters die aan een bepaalde praktijk verbonden zijn
            List<ArtsenInPraktijken> PraktijkenLijst = Praktijk.getArtsenInPraktijk(PraktijkID);

            

            //lijst met overige dokters uit deze praktijk
            ph_OtherDocs.Controls.Clear();
            Table dokters = new Table();
            dokters.CssClass = "dokters";
            TableHeaderRow head = new TableHeaderRow();
            head.CssClass = "dokters";
            TableHeaderCell headcell = new TableHeaderCell();
            headcell.HorizontalAlign = HorizontalAlign.Left;
            headcell.CssClass = "dokters";
            headcell.Text = "Overige dokters in deze praktijk:";
            head.Cells.Add(headcell);
            dokters.Rows.Add(head);

            foreach (ArtsenInPraktijken Docs in PraktijkenLijst)
            {
                if (Docs.ArtsID != ID)
                {
                    TableRow newRow = new TableRow();
                    newRow.CssClass = "dokters";
                    TableCell NewCell = new TableCell();
                    NewCell.CssClass = "dokters";
                    LinkButton Newlink = new LinkButton();

                    List<Artsen> DokNames = GetDocInfo.getArtsInfo(Docs.ArtsID);

                    
                    Newlink.Text = "Dr." + DokNames[0].Achternaam;
                    Newlink.PostBackUrl = "PatientAgenda.aspx?ID=" + Docs.ArtsID + "&PraktijkID=" + Docs.PraktijkID;
                    NewCell.Controls.Add(Newlink);
                    newRow.Cells.Add(NewCell);
                    dokters.Rows.Add(newRow);
                }
            }
            ph_OtherDocs.Controls.Add(dokters);


            //hier wordt voor de dokter van diens de afspraakduur opgehaald...
            List<Artsen> DokterVanDienst = GetDocInfo.getArtsInfo(ID);
            int Afspraakduur = 0;

            foreach (Artsen Dok in DokterVanDienst)
            {
                lbl_DoktersNaam.Text = "Dr." + Dok.Achternaam;
                lbl_DoktersNaam.Font.Size = 20;
                Afspraakduur = Dok.DuurAfspraak;
            }

            #region nagaan of user al dan niet is ingelogd
            //hier gaan we na of de user ingelogd is of niet

            LoginFactory LF = new LoginFactory();
            bool logedin = LF.CheckLogin();

            #endregion

            //hier moet de functie opgeroepen worden die de agenda uittekend
            TekenAgenda Agenda = new TekenAgenda();
            Placeholder_Agenda.Controls.Add(Agenda.StartDrawing(GekozenDatum, Afspraakduur, ID, logedin, PraktijkID));  //agenda tekenen wordt opgeroepen
        }

        
    }
}